<?php

include_once 'Fachada.php';
include_once 'ControllerExercicio.php';
include_once 'ControllerTreino.php';
include_once 'ControllerFichaAtleta.php';
include_once 'ControllerHistorico.php';
include_once 'ControllerAmigo.php';
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of FachadaImplements
 *
 * @author Fabio
 */
class FachadaImplements implements Fachada {
    
    private static $instancia;
    private $controllerExercicio;
    private $controllerTreino;
    private $controllerFichaAtleta;
    private $controllerHistorico;
    private $controllerAmigo;
    
    private function __construct() {
      
        $this->controllerExercicio = new ControllerExercicio();
        $this->controllerTreino = new ControllerTreino();
        $this->controllerFichaAtleta = new ControllerFichaAtleta();
        $this->controllerHistorico = new ControllerHistorico();
        $this->controllerAmigo = new ControllerAmigo();
    }
    
    public static function getInstancia(){
       
        if(static::$instancia == null){
            static::$instancia = new FachadaImplements();
        }
        
        return static::$instancia;
    }

    public function cadastrarExercicio($idExercicio, $idTreino, $nomeExercicio, $numeroSeries, $numeroRepeticoes, $intervalo, $carga) {
        $this->controllerExercicio->cadastrarExercicio($idExercicio, $idTreino, $nomeExercicio, $numeroSeries, 
                $numeroRepeticoes, $intervalo, $carga);
    }

    public function cadastrarTreino($idTreino, $idFichaAtleta, $exercicios, $observacoes) {
        $this->controllerTreino->cadastrarTreino($idTreino, $idFichaAtleta, $exercicios, $observacoes);
    }
    
    public function cadastrarFichaAtleta($idFicha, $idAtleta, $nomeAcademia, $nomeInstrutor, 
            $objetivo, $pesoAtleta, $idadeAtleta, $alturaAtleta, $observacoes) {
        $this->controllerFichaAtleta->cadastrarFicha($idFicha, $idAtleta, $nomeAcademia, $nomeInstrutor, $objetivo, $pesoAtleta, $idadeAtleta, $alturaAtleta, $observacoes);
    }
    
    public function exibirHistorico($idAtleta) {
        $this->controllerHistorico->exibirHistorico($idAtleta);
    }
    
    public function convidarAmigo($idSolicitante, $idAmigo) {
        $this->controllerAmigo->convidarAmigo($idSolicitante, $idAmigo);
    }

    public function aceitarSolicitacao($idAtleta, $idSolicitacao) {
        $this->controllerAmigo->aceitarSolicitacao($idAtleta, $idSolicitacao);
    }

    public function consultarAmigos($idAtleta) {
        $this->controllerAmigo->consultarAmigos($idAtleta);
    }
}

?>
